#ifndef _ADDRESS_BAR__H_
#define _ADDRESS_BAR__H_

#include <QWidget>
#include <QString>
#include <QUrl>

#include <ui_addressbar.h>

/**
 * addressbar.h addressbar.cpp (FERNANDO)
 *
 * Barra de endereços e ações:
 * devera conter os seguintes sub-widgets:
 * QLineEdit (própria barra de endereços)
 * QPushButton ("voltar", "próximo", "ir", "recarregar", "parar")
 * opcional: auto-complete
 * opcional: mostrar somente quando o mouse se aproximar
 * obs.: usar layouts
 * obs. 2: usar gráfico para os botões
 */
class AddressBar : public QWidget
{
    Q_OBJECT

  public:
    /** Cria widget com todos sub-widgets e conecta os sinais aos slots */
    AddressBar(QWidget *parent = 0);

  private:
	  Ui::AddressBar
	  ui;

  public slots:

    /** Seta endereço(valor text) do QLineEdit, e emite sinal addressChanged */
    void setAddress(const QString &text);
    void setAddress(const QUrl &url);

  private slots:
	void clicaram_back();
	void clicaram_next();
	void clicaram_stop();
	void clicaram_reload();

	void clicaram_load();

  signals:

    /** Emitido quando o usuário pressiona enter ou clica em "Ir" */
    void load(const QUrl &url);

    /** Idem... */
    void reload();
    void stop();
    void forward();
    void back();
};

#endif /* _ADDRESS_BAR__H_ */
